#pragma once
#include "Package.h"
#include "User.h"

/*	przechowuje pakiet, czyli kod wiadomo�ci wraz z danymi
	oraz u�ytkownika od kt�rego przysz�a / do kt�rego ma zosta� wys�ana wiadomo��
*/ 

class Message			
{

public:
	//TODO ??? a mo�e wska�nik na u�ytkownika? na pewno nie obiekt klasy User
	User* userPtr;
	//TODO tu powinien by� Package, ale p�ki nie gotowy do test�w tylko kod wiadomo�ci
	//	Package package;
	Package *pack;

public:
	Message(void){};
	~Message(){ }

	void clean() {delete pack; }

	Message(User* userId, ChatPackage pack_) : userPtr(userId), pack(new ChatPackage(pack_)) {};
	Message(User* userId, Package pack_) : userPtr(userId), pack(new Package(pack_)) {};
	Message(User* userId, ImagePackage pack_) : userPtr(userId), pack(new ImagePackage(pack_)) {};
	Message(User* userId, NumberPackage pack_) : userPtr(userId), pack(new NumberPackage(pack_)) {};
};
